const xlsx = require('xlsx');
const dayjs = require('dayjs');

// excel时间转js时间
function ExcelDateToJSDate(serial) {
  var utc_days = Math.floor(serial - 25569);
  var utc_value = utc_days * 86400;
  var date_info = new Date(utc_value * 1000);

  var fractional_day = serial - Math.floor(serial) + 0.0000001;

  var total_seconds = Math.floor(86400 * fractional_day);

  var seconds = total_seconds % 60;

  total_seconds -= seconds;

  var hours = Math.floor(total_seconds / (60 * 60));
  var minutes = Math.floor(total_seconds / 60) % 60;

  return new Date(
    date_info.getFullYear(),
    date_info.getMonth(),
    date_info.getDate(),
    hours,
    minutes,
    seconds,
  );
}

function changeArrayToObject(props) {
  const { sheetData, changeObj } = props;
  // 建立空数组，用于放置数据
  let testList = [];
  // testTitle也是个数组，用于读取标题行
  let testTitle = sheetData[0];
  sheetData.forEach((item, index) => {
    //整一个新对象
    var NewVot = {};
    if (index == 0) return;
    else if (item.filter(item => item).length > 0) {
      for (var i = 0; i < testTitle.length; i++) {
        if (changeObj[testTitle[i]]) {
          if (changeObj[testTitle[i]] == 'Monitoring') {
            NewVot[changeObj[testTitle[i]]] = dayjs(
              ExcelDateToJSDate(item[i]),
            ).format('YYYY-MM-DD HH:mm:ss');
          } else {
            NewVot[changeObj[testTitle[i]]] = item[i];
          }
        }
      }
      testList.push(NewVot);
    }
  });

  return testList;
}

/*
page1 \page2表头对应的key值
*/
// const changeKeyOne = {
//   时间: 'date',
//   环号: 'number',
//   '刀盘转速(rpm)': 'RotatSpeedCutter',
//   '铰接油缸行程右(mm)': 'HitchCylinderRight',
//   '铰接油缸行程下(mm)': 'HitchCylinderDown',
//   '铰接油缸行程左(mm)': 'HitchCylinderLeft',
//   '铰接油缸行程上(mm)': 'HitchCylindertop',
//   '推进速度(mm/min)': 'rateAdvance',
//   'A组推力(kN)': 'ThrustA',
//   'B组推力(kN)': 'ThrustB',
//   'C组推力(kN)': 'ThrustC',
//   'D组推力(kN)': 'ThrustD',
//   'E组推力(kN)': 'ThrustE',
//   'F组推力(kN)': 'ThrustF',
//   'VMT导向水平前(mm)': 'orientedLevelAhead',
//   'VMT导向垂直前(mm)': 'orientedVerticallyAhead',
//   'VMT导向水平中(mm)': 'orientedLevelMiddle',
//   'VMT导向垂直中(mm)': 'orientedVerticallyMiddle',
// };
// const changeKeyTwo = {
//   时间: 'date',
//   环号: 'number',
//   刀盘转速: 'RotatSpeedCutter',
//   铰接油缸行程右: 'HitchCylinderRight',
//   铰接油缸行程下: 'HitchCylinderDown',
//   铰接油缸行程左: 'HitchCylinderLeft',
//   铰接油缸行程上: 'HitchCylindertop',
//   推进速度: 'rateAdvance',
//   A组推力: 'ThrustA',
//   B组推力: 'ThrustB',
//   C组推力: 'ThrustC',
//   D组推力: 'ThrustD',
//   E组推力: 'ThrustE',
//   F组推力: 'ThrustF',
//   VMT导向水平前: 'orientedLevelAhead',
//   VMT导向垂直前: 'orientedVerticallyAhead',
//   VMT导向水平中: 'orientedLevelMiddle',
//   VMT导向垂直中: 'orientedVerticallyMiddle',
//   y1: 'yOne',
//   y2: 'yTwo',
//   y3: 'yThree',
//   y4: 'yFour',
// };
module.exports = {
  changeArrayToObject,
  // changeKeyTwo,
  // changeKeyOne,
};
